package bufferings.lab.slim3.speed.gtx;

import org.junit.Test;
import org.slim3.datastore.Datastore;
import org.slim3.tester.AppEngineTestCase;

import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.Transaction;

public class LtxSpeed1 extends AppEngineTestCase {

  @Test
  public void ltx001_1EGを10回コミット() {
    runLtx(10, 1);
  }

  @Test
  public void ltx002_2EGを10回コミット() {
    runLtx(10, 2);
  }

  @Test
  public void ltx003_3EGを10回コミット() {
    runLtx(10, 3);
  }

  @Test
  public void ltx004_4EGを10回コミット() {
    runLtx(10, 4);
  }

  @Test
  public void ltx005_5EGを10回コミット() {
    runLtx(10, 5);
  }

  private void runLtx(int numberOfTimes, int entityGroupCount) {
    for (int i = 0; i < numberOfTimes; i++) {
      for (int j = 0; j < entityGroupCount; j++) {
        Transaction tx = Datastore.beginTransaction();
        Datastore.put(tx, new Entity("Hoge"));
        tx.commit();
      }
    }
  }
}
